// 操作错误 用户操作导致的报错
class AppError extends Error {
    constructor(message, statusCode){
        super(message); // 继承和使用父类的东西来着
        this.statusCode = statusCode;
        //startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头，并根据判断结果返回 true 或 false。
        this.status = `${statusCode}`.startsWith('4') ? 'fail':'error'; 
        this.isOperational = true;
        Error.captureStackTrace(this, this.constructor) // 抛出这个错误对象的堆栈信息
    }
}
module.exports = AppError;